﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using NetworkIndexer.Data.DomainModels;

namespace NetworkIndexer.Data.Repositories
{
    public interface IDataAccess
    {
        /// <summary>
        /// Adds a share to the cache (ex. to a database)
        /// </summary>
        /// <param name="details">The details of the share</param>
        void AddShareToCache(ShareDetails details);

        /// <summary>
        /// Clears the cache.
        /// </summary>
        void ClearCache();

        /// <summary>
        /// Recalculates the accesibility of the cache without clearing the cache.
        /// </summary>
        void ReCalculateAccessibility();

        /// <summary>
        /// Gets the network share cache
        /// </summary>
        IList<ShareDetails> GetNetworkShareCache();
    }
}
